/*
 * Die Klasse Notiz
 * 
 * Datei: Notiz.java 			Autor:   Martin Fischer 
 * Datum: 13.11.2011 			Version: 1.0
 */
package kommunikation;

import java.io.Serializable;
import personenverwaltung.AktuellesDatum;
import personenverwaltung.Benutzer;

public class Notiz implements Serializable
{
  private static final long serialVersionUID = 3978203312474322759L;
  private String inhalt; 		/* Inhalt der Notiz 		*/
  private Benutzer mitarbeiter; 		/* Name des Erfassers 		*/
  private String erstellungsdatum; 	/* Datum der Erstellung 	*/
  private String aenderungsdatum; 	/* Datum der Aenderung 		*/
  private int notizNummer = 1; 		/* laufende Notiznummer 	*/


  /*
   * Konstruktor mit zwei uebergabeparametern (inhalt, mitarbeiter) Beim
   * erzeugen einer Notiz wird ein Erstellungsdatum gespeichert
   */
  public Notiz (String inhalt, Benutzer mitarbeiter)
  {
    this.mitarbeiter = mitarbeiter;
    setzeErstellungsdatum ();
    setzeAenderungsdatum ();
    this.inhalt = "---------------------------------------------------"
	+ "-----\n"
	+ "Notiz erstellt am: "
	+ erstellungsdatum
	+ " von: "
	+ mitarbeiter.gibVornamen ()
	+ ", "
	+ mitarbeiter.gibNachname ()
	+ "\n--------------------------------------------------------\n\n"
	+ "Notiz " + notizNummer + ": " + inhalt + "\n"
	+ "Notiz geschrieben am: " + aenderungsdatum + " von: "
	+ mitarbeiter.gibVornamen () + ", " + mitarbeiter.gibNachname ()
	+ "\n\n";
    notizNummer++;
  }


  /*
   * einen Integer nach String convertieren
   */
  public String nachStringKonvertieren (int plz)
  {
    Integer i = new Integer (plz);
    return i.toString ();
  }


  /*
   * neue Notiz hinzufuegen
   */
  public void notizHinzufuegen (String inhalt, Benutzer mitarbeiter)
  {
    setzeMitarbeiter (mitarbeiter);
    setzeAenderungsdatum ();
    this.inhalt += "\n---------------------------------------------------"
	+ "-----\n" + "Notiz " + notizNummer + ": " + inhalt + "\n"
	+ "Notiz geschrieben am: " + aenderungsdatum + " von: "
	+ mitarbeiter.gibVornamen () + ", " + mitarbeiter.gibNachname ()
	+ "\n\n";
    ;
    notizNummer++;
  }


  /*
   * gibt den Inhalt der Notiz wieder
   */
  public String gibInhalt ()
  {
    return inhalt;
  }


  /*
   * setzt den Namen des Mitarbeiters der eine Notiz schreibt
   */
  public void setzeMitarbeiter (Benutzer mitarbeiter)
  {
    this.mitarbeiter = mitarbeiter;
  }


  /*
   * gibt den Namen des Mitarbeiters wieder der eine Notiz geschrieben hat
   */
  public Benutzer gibMitarbeiter ()
  {
    return mitarbeiter;
  }


  /*
   * Wird einmalig im Konstruktor aufgerufen und beinhaltet das Datum bei
   * der Erzeugung der Notiz
   */
  private void setzeErstellungsdatum ()
  {
    erstellungsdatum = nachStringKonvertieren (AktuellesDatum.gibTag ())
	+ "." + nachStringKonvertieren (AktuellesDatum.gibMonat ()) + "."
	+ nachStringKonvertieren (AktuellesDatum.gibJahr ());
  }


  /*
   * gibt das Erstellugsdatum der Notiz zurueck
   */
  public String gibErstellungsdatum ()
  {
    return erstellungsdatum;
  }


  /*
   * erfasst das aktuelle Datum bei einer Aenderung der Notiz
   */
  private void setzeAenderungsdatum ()
  {
    aenderungsdatum = nachStringKonvertieren (AktuellesDatum.gibTag ())
	+ "." + nachStringKonvertieren (AktuellesDatum.gibMonat ()) + "."
	+ nachStringKonvertieren (AktuellesDatum.gibJahr ());
    ;
  }


  /*
   * liefert das Datum der letzen Aenderung
   */
  public String gibAenderungsdatum ()
  {
    return aenderungsdatum;
  }
}
